/* 
 *
 * Persistence4J - Simple library for data persistence using java
 * Copyright (c) 2010, Avdhesh yadav.
 * http://www.avdheshyadav.com
 * Contact: avdhesh.yadav@gmail.com
 *
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation,
 * either version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 */

package com.avdy.p4j.jdbc.dao.util;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 
 * @author Avdhesh Yadav
 *
 */
public final class ConnUtils 
{
	/**
	 * 
	 * @param conn Connection Connection
	 * @param stmt Statement Statement
	 * @param rs ResultSet ResultSet
	 */
	public static void closeQuietly(Connection conn, Statement stmt, ResultSet rs) 
	{
		try 
		{
			closeResultQuietly(rs);
		} 
		finally 
		{
			try
			{
				closeStatementQuietly(stmt);
			}
			finally 
			{
				closeConnectionQuietly(conn);
			}
		}
	}


	/**
	 * 
	 * @param conn Connection
	 */
	public static void closeConnectionQuietly(Connection conn)
	{
		try 
		{
			closeConnection(conn);
		} 
		catch (SQLException e)
		{

		}
	}


	/**
	 * 
	 * @param stmt Statement
	 */
	public static void closeStatementQuietly(Statement stmt) 
	{
		try
		{
			closeStatement(stmt);
		} 
		catch (SQLException e) 
		{

		}
	}


	/**
	 * 
	 * @param rs ResultSet
	 */
	public static void closeResultQuietly(ResultSet rs) 
	{
		try
		{
			closeResult(rs);
		} 
		catch (SQLException e) 
		{

		}
	}


	/**
	 * 
	 * @param conn Connection
	 * 
	 * @throws SQLException
	 */
	public static void closeConnection(Connection conn) throws SQLException
	{
		if (conn != null)
		{
			conn.close();
		}
	}


	/**
	 * 
	 * @param stmt Statement
	 * 
	 * @throws SQLException
	 */
	public static void closeStatement(Statement stmt) throws SQLException
	{
		if (stmt != null) 
		{
			stmt.close();
		}
	}


	/**
	 * 
	 * @param rs ResultSet
	 * 
	 * @throws SQLException
	 */
	public static void closeResult(ResultSet rs) throws SQLException
	{
		if (rs != null)
		{
			rs.close();
		}
	}
}
